package org.jeecg.modules.bobo.wechat.common.entity;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 订单记录
 * @Author: jeecg-boot
 * @Date:   2020-11-23
 * @Version: V1.0
 */
@Data
@TableName("wechat_orders")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="wechat_orders对象", description="订单记录")
public class WechatOrders implements Serializable {
    private static final long serialVersionUID = 1L;

	/**微信id*/
	@Excel(name = "微信id", width = 15)
    @ApiModelProperty(value = "微信id")
    private String openid;
	/**商户订单号*/
	@Excel(name = "商户订单号", width = 15)
    @ApiModelProperty(value = "商户订单号")
    @TableId(value = "out_trade_no",type = IdType.INPUT)
    private String outTradeNo;
	/**微信支付订单号*/
	@Excel(name = "微信支付订单号", width = 15)
    @ApiModelProperty(value = "微信支付订单号")
    private String transactionId;
	/**订单总金额，单位为分*/
	@Excel(name = "订单总金额，单位为分", width = 15)
    @ApiModelProperty(value = "订单总金额，单位为分")
    private Integer totalFee;
	/**提交前余额，单位为分*/
	@Excel(name = "提交前余额，单位为分", width = 15)
    @ApiModelProperty(value = "提交前余额，单位为分")
    private Integer beforeFee;
	/**提交后余额，单位为分*/
	@Excel(name = "提交后余额，单位为分", width = 15)
    @ApiModelProperty(value = "提交后余额，单位为分")
    private Integer afterFee;
	/**交易状态0未支付1成功-1失败*/
	@Excel(name = "交易状态0未支付1成功-1失败", width = 15)
    @ApiModelProperty(value = "交易状态0未支付1成功-1失败")
    private String payStatus;
	/**附加数据，区分订单类型*/
	@Excel(name = "附加数据，区分订单类型", width = 15)
    @ApiModelProperty(value = "附加数据，区分订单类型")
    private String attach;
	/**订单描述*/
	@Excel(name = "订单描述", width = 15)
    @ApiModelProperty(value = "订单描述")
    private String body;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
	/**交易类型*/
	@Excel(name = "交易类型", width = 15)
    @ApiModelProperty(value = "交易类型")
    private String tradeType;
	/**交易完成时间*/
	@Excel(name = "交易完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "交易完成时间")
    private java.util.Date timeEnd;
	/**是否推送模板消息*/
	@Excel(name = "是否推送模板消息", width = 15)
    @ApiModelProperty(value = "是否推送模板消息")
    private String isPushMess;
	/**微信推送模版时间*/
	@Excel(name = "微信推送模版时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "微信推送模版时间")
    private java.util.Date pushTime;
	/**微信模板消息id*/
	@Excel(name = "微信模板消息id", width = 15)
    @ApiModelProperty(value = "微信模板消息id")
    private String templateMessageId;
	/**微信推送模板错误代码*/
	@Excel(name = "微信推送模板错误代码", width = 15)
    @ApiModelProperty(value = "微信推送模板错误代码")
    private Integer templateMessageCode;
	/**微信推送模板错误信息*/
	@Excel(name = "微信推送模板错误信息", width = 15)
    @ApiModelProperty(value = "微信推送模板错误信息")
    private String templateMessageMsg;
	/**商户退款单号*/
	@Excel(name = "商户退款单号", width = 15)
    @ApiModelProperty(value = "商户退款单号")
    private String outRefundNo;
	/**微信退款单号*/
	@Excel(name = "微信退款单号", width = 15)
    @ApiModelProperty(value = "微信退款单号")
    private String refundId;
	/**退款金额*/
	@Excel(name = "退款金额", width = 15)
    @ApiModelProperty(value = "退款金额")
    private Integer refundFee;
	/**退款原因*/
	@Excel(name = "退款原因", width = 15)
    @ApiModelProperty(value = "退款原因")
    private String refundDesc;
	/**0无需退款 2退款待审批 -2拒绝退款  1退款成功   -1退款失败*/
	@Excel(name = "0无需退款 2退款待审批 -2拒绝退款  1退款成功   -1退款失败", width = 15)
    @ApiModelProperty(value = "0无需退款 2退款待审批 -2拒绝退款  1退款成功   -1退款失败")
    private Integer refundStatus;
	/**退款发起时间*/
	@Excel(name = "退款发起时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "退款发起时间")
    private java.util.Date refundTime;
	/**退款失败代码*/
	@Excel(name = "退款失败代码", width = 15)
    @ApiModelProperty(value = "退款失败代码")
    private String refundErrCode;
	/**退款错误代码描述*/
	@Excel(name = "退款错误代码描述", width = 15)
    @ApiModelProperty(value = "退款错误代码描述")
    private String refundErrDes;
	/**退款申请完成时间*/
	@Excel(name = "退款申请完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "退款申请完成时间")
    private java.util.Date refundSuccessTime;
}
